iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
1

觀迎來到第 12 天,我們說了三天的動態爬蟲,圍繞在 Selenium 的功能和使用,但不知道各位有沒有發現,依照過去的程式碼執行時,總會跳出一個新的視窗,在 windows 或 mac 系統中都還可以接受這樣的狀態,但在 Linux 伺服器當中,若是該伺服器並不支援圖形化介面,那就消除視窗就變的必要。因此今天要透過一些設定讓爬蟲程式在執行的過程並不會產生新的視窗,以確保爬蟲程式在背景執行時不會影響其他操作。

selenium.webdriver.chrome.options

在開啟 webdriver 前,其實有許多的設定可以做,例如 "--headless" 不顯示視窗。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(executable_path = 'Path to webdriver',
                             options=chrome_options)

透過 Options() 設定,並在開啟 webdriver 時將參數放入,就可以得到隱藏視窗的結果。

除了隱藏視窗外,現在許多的網站為了配合多元平台如手機、平板、電腦等不同的瀏覽比例,而使用了 RWD 的方式進行設計以確保更好的使用者體驗。而在爬蟲時,有些情況其實爬取窄頁面會比寬頁面來得容易,因此我們可以透過 "--window-size" 來進行設定。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--window-size=520,1080") # 頁面寬度較窄
driver = webdriver.Chrome(executable_path = 'Path to webdriver',
                             options=chrome_options)

當然還有許多其他設定可以做,可以參考文件,以便得到更深入的資訊。

明天我們就要利用這些資訊,結合上週末番外篇提及的 Line API 外加 Linux 部署,讓你的程式可以 24 小時的掛在上面執行。明天見。


上一篇
[Day 11] 動態爬蟲 - 3
下一篇
[Day 13] 動態爬蟲 - 5
系列文
資料蒐集與分散式運算 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言